assume cs:codesg
codesg segment

a segment
   dw 1, 2, 3, 4, 5, 6, 7, 8
a ends

b segment
   dw 1, 2, 3, 4, 5, 6, 7, 8
b ends

c segment
   dw 0, 0, 0, 0, 0, 0, 0, 0
c ends
start:
   mov ax, a
   mov ds, ax
   mov ax, b
   mov es, ax
   mov ax, c
   mov ss, ax
   mov bx, 0
   mov cx, 8

s:
   mov al, ds:[bx]
   add al, es:[bx]
   mov ss:[bx], al
   add bx, 2
   loop s

   mov ax, 4C00H
   int 21H

codesg ends

end start
